package net.xinqushi.design.templateMethod.core;

import net.xinqushi.design.templateMethod.util.NumberUtils;

import java.util.HashMap;
import java.util.Map;


public class ResponseDescriptor {

	private static final Map<Integer,String> codeDescriptor=new HashMap<Integer,String>();

	private static final String Null="";

	private int code;

	private String descrption;

	private String messageID=Null;

	public ResponseDescriptor(String responseCode){
		if(responseCode.startsWith("100")){
			code=NumberUtils.parseNumber(responseCode.substring(0, 3), Integer.class);
			messageID=responseCode.substring(5);
		}else{
			code=NumberUtils.parseNumber(responseCode, Integer.class);
		}
		this.descrption=codeDescriptor.get(code);
	}

	static{
		codeDescriptor.put(100, "发送成功");
		codeDescriptor.put(201, "报文异常，造成原因：发送消息参数不正确");
		codeDescriptor.put(202, "鉴权失败，造成原因：用户名或密码不正确");
		codeDescriptor.put(203, "报文异常，造成原因：手机号码格式不正确");
		codeDescriptor.put(204, "报文异常，造成原因：发送内容为空");
		codeDescriptor.put(205, "报文异常，造成原因：发送内容超长");
		codeDescriptor.put(206, "报文异常，造成原因：WAP推送URL为空");
		codeDescriptor.put(207, "报文异常，造成原因：WAP推送URL超长");
		codeDescriptor.put(208, "报文异常，造成原因：发送类型不识别");
		codeDescriptor.put(209, "鉴权失败，造成原因：使用IP未注册");
		codeDescriptor.put(301, "发送失败，造成原因：发送频率过快，超过单位时间范围内可允许发送阀值");
		codeDescriptor.put(302, "发送失败，造成原因：服务器未响应，请稍候发送");
		codeDescriptor.put(303, "发送失败，造成原因：处于免打扰发送时间段，禁止发送");
		codeDescriptor.put(401, "发送失败，造成原因：客户端已停止（连接池已销毁）");
		codeDescriptor.put(402, "发送失败，造成原因：客户端调用异常");
		codeDescriptor.put(403, "发送失败，造成原因：客户端连接无效");
	}

	public int getCode() {
		return code;
	}

	public void setCode(int code) {
		this.code = code;
	}

	public String getDescrption() {
		return descrption;
	}

	public void setDescrption(String descrption) {
		this.descrption = descrption;
	}

	public String getMessageID() {
		return messageID;
	}

	public void setMessageID(String messageID) {
		this.messageID = messageID;
	}

}
